package com.zmn.oms.business.interfaces.messageV1.wechat;

import com.zmn.oms.model.dto.messageV1.SendMessageParams;


/**
 * 类描述： 发送微信消息模板
 *
 * @author yule
 * @date 2020/12/22 11:45
 */
public interface MessageWeChatTemplateService {

    /**
     * 发送微信模板消息
     *
     * @param param
     * @return
     */
    boolean sendWeChatTemplate(SendMessageParams param);

    /**
     * 指定用户微信消息
     * 用于指定某单个用户发送微信模板消息
     * @param orderId
     * @param ruleId
     * @param sendUserId
     * @return
     */
    boolean sendDesignatedUserWeChatTemplate(Long orderId, Integer ruleId, Long sendUserId);

    /**
     * 已知openId用户发送微信模板消息（可用于扫码功能微信发送）
     * 用于指定某单个用户已知晓OpenId发送微信模板消息
     * @param orderId
     * @param ruleId
     * @param sendUserId
     * @return
     */
    boolean sendDesignatedOpenIdWeChatTemplate(Long orderId, Integer ruleId, Long sendUserId, String openId);

    /**
     * 已知openId用户发送微信模板消息（可用于扫码功能微信发送）
     * 用于指定某单个用户已知晓OpenId发送微信模板消息
     * @param orderId
     * @param ruleId
     * @param sendUserId
     * @param openId
     * @param objectId 业务id
     * @return
     */
    boolean sendDesignatedOpenIdWeChatTemplate(Long orderId, Integer ruleId, Long sendUserId, String openId, Long objectId);

    /**
     * 发送私域流量消息
     * @param orderId
     * @param platWork
     * @param channelId
     * @param userId
     * @param openId
     * @return
     */
    void sendWeChatPrivateTrafficMsg(Long orderId, Integer platWork, Integer channelId, Long userId, String openId);

    /**
     * 发送微信消息(发给下单用户和扫码用户)
     *
     * @param orderId
     * @param workId
     * @param ruleId
     * @return
     */
    boolean sendDesignatedWeChatTemplate(Long orderId, Long workId, Integer ruleId);
}
